﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Cofe.Core.Logger
{
    public interface IEventLog 
    {
        ///// <summary>
        ///// Identifier of the event log
        ///// </summary>
        //Int64 Id { get; }

        /// <summary>
        /// Utc time for the event.
        /// </summary>
        DateTime UtcTime { get; }

        /// <summary>
        /// Event sender.
        /// </summary>
        string Sender { get; }

        /// <summary>
        /// CurrentUserProfile _id when the event is raised.
        /// </summary>
        string UserId { get; }

        /// <summary>
        /// Event raised.
        /// </summary>
        EventArgs EventArgs { get; }        
    }


    public interface IEventLog<T> : IEventLog
        where T : EventArgs
    {        
        /// <summary>
        /// Event raised.
        /// </summary>
        new T EventArgs { get; }
    }
}
